Skip to content

​ Node.js 是一个基于Chrome V8 引擎的JavaScript运行环境 ​ Node.js的模块使用 require 引入,内置模块和插件模块直接引入,自定义模块引入时写相对路径

安装node.js

nodejs环境npm包管理工具,需打包安装(两者的版本号相对应)

安装方式

​ 1.nodejs安装包 2.mvn版本管理工具 注:两种方式采用一种即可

安装mvn版本管理工具
使用mvn版本工具安装node.js		默认安装路径: C:\Users\用户名AppData\Roaming\nvm

一、下载并安装nvm-windows
二、配置系统变量,配置路径:我的电脑/属性/高级设置/环境变量/系统变量
	 NVM_HOME: C:\Users\Pc\AppData\Roaming\nvm
	 NVM_SYMLINK: C:\Program File\node.js
	 path追加: %NVM_HOME% 和 %NVM_SYMLINK%
三、更改下载源
	在安装目录/settings.txt中追加代码
	node_mirror: https://npm.taobao.org/mirrors/node/
	npm_mirror: https://npm.taobao.org/mirrors/npm/
mvn命令
	查看可用版本  nvm list available		查看可下载的nodejs版本信息,LTS列表示稳定版本
	查看已有版本	nvm list   				列出当前电脑下的Node.js的版本列表
	切换版本	 nvm install 版本号       安装某一个版本
	安装版本	 nvm use 版本号           切换某一个版本

注:如果npm没有同步安装,则需从node.js官网下载对应版本的npm,安装在版本文件夹内(node_modules/npm)

基本操作

命令行工具通用操作

	ls	    		  查看当前路径的所有文件
	dir     		  查看当前路径的所有文件
	tab				  补全命令
	↑				  查看历史命令
	cd	目录名	  		进入目录
	软件名  --version	查看软件版本(简写 -v)

执行node.js文件

	node js文件		注:js文件的后缀名可以省略
node.js文件监听插件
	nodemon:每次保存触发监听 
	supervisor: 每秒触发监听
	npm install nodemon -g
	npm install supervisor -g

内置模块

​ Node.js内部提供的模块,直接加载参考api使用,无需安装。

​ 内置模块通常为异步操作(async),在方法后添加syn可转换为同步操作

path路径模块

当前目录__dirname

​ 表示当前目录路径字符串

路径拼接path.join([...paths])

​ 返回值:拼接后路径(字符串)

​ 参数:多个路径paths(字符串)

	let url = path.join(__dirname,'src','html','index.html')		例:主页路径

查找后缀path.extname(path)

​ 返回值:文件后缀(字符串)

​ 参数:路径path(字符串)

	let url = 'C:\Users\41702\Documents\_note\JAVAScript笔记2021.8.18.b.md'
	let ext = path.extname(url)	 		返回:.md

查找路径path.dirname(path)

​ 返回值:网页路径(字符串)

​ 参数:路径path(字符串)

	let url = 'C:\Users\41702\Documents\_note\JAVAScript笔记2021.8.18.b.md'
	let dirname = path.dirname(url)	 	返回:\C:\Users\41702\Documents\_note

查找文件名path.basename(path[,ext]);

​ 返回值:文件名(字符串)

​ 参数:路径path(字符串)

​ 参数:末尾去除部分ext(字符串)

	let url = 'C:\Users\41702\Documents\_note\JAVAScript笔记2021.8.18.b.md'
	let dirname = path.basename(url)	 		返回:JAVAScript笔记2021.8.18.b.md
	let dirname = path.basename(url,8.b.md)		返回:JAVAScript笔记2021.8.1

fs文件系统

目录

增加目录/文件
	创建目录fs.mkdir(url,(err)=>{})					创建文件fs.writeFile(file, data[, options], callback)
删除目录/文件
	删除目录fs.rmdir(url,(err)=>{})					删除文件fs.unlink(url,(err)=>{})
重命名目录/文件
	重命名目录/文件fs.rename(oldurl,newurl,(err)=>{})
查找目录/文件
	读取目录fs.readdir(url,(err,files)=>{})			读取文件fs.readFile(url,[encoding],(err,files)=>{})

创建目录fs.mkdir(url,callback)

​ 参数:新目录路径url(字符串) 注:只能创建一层目录

​ 参数:运行结束后执行的函数callback

​ 回调参数:错误err

	fs.mkdir(path.join(__dirname, 'src'), err => {		//创建目录src
		if (err) throw err;								//如果有错误,则抛错
		console.log('创建成功');
	})

创建文件fs.writeFile(file, data[, options], callback)

​ 参数:新文件路径url(字符串) 注:路径中目录需已存在,且路径包含文件名

​ 参数:新文件内容data(字符串)

​ 参数:**[编码格式] ** 注:通常为空,或utf-8

​ 参数:运行结束后执行的函数callback

​ 回调参数:错误err

js
	fs.writeFile(path.join(__dirname, 'src/test.txt'), 'hello', err => {	//创建文件test.txt
    	if (err) throw err;													//如果有错误,则抛错
    	console.log('创建成功');
	});

删除目录fs.rmdir(url,callback)

​ 参数:目标目录路径url(字符串) 注:若目录中有文件,则报错

​ 参数:运行结束后执行的函数callback

​ 回调参数:错误err

	fs.rmdir(path.join(__dirname, 'src'), err => {		//删除目录src
		if (err) throw err;								//如果有错误,则抛错
		console.log('删除成功');
	})

​ 参数:目标文件路径url(字符串)

​ 参数:运行结束后执行的函数callback

​ 回调参数:错误err

	fs.unlink(path.join(__dirname, 'src/test.txt'), err => {		//删除文件test.txt
		if (err) throw err;											//如果有错误,则抛错
		console.log('删除成功');
	})

重命名目录/文件fs.rename(oldurl,newurl,callback)

​ 参数:源目录/文件路径oldurl(字符串)

​ 参数:目标目录/文件路径newurl(字符串)

​ 参数:运行结束后执行的函数callback

​ 回调参数:错误err

	let oldurl = path.join(__dirname, 'src/test.txt')
	let newurl = path.join(__dirname, 'src/new.txt')
	fs.rename(oldurl,newurl, err => {								//将test.txt命名为new.txt
		if (err) throw err;											//如果有错误,则抛错
		console.log('删除成功');
	})

读取目录fs.readdir(url,callback)

​ 参数:目标目录url(字符串)

​ 参数:运行结束后执行的函数callback

​ 回调参数:错误err

​ 回调参数:目录中的文件名集files(数组)

	fs.readdir(path.join(__dirname, 'src/'), (err, files) => {
	    if (err) throw err;
	    console.log(files); 										//返回目录中的所有文件
	});

读取文件fs.readFile(url,[encoding],callback)

​ 参数:目标目录url(字符串)

​ 参数:编码格式encoding(字符串) 注:通常为空,或utf-8

​ 参数:运行结束后执行的函数callback

​ 回调参数:错误err

​ 回调参数:目录中的文件名集data(数组)

	fs.readFile(path.join(__dirname, 'src/'), (err, data) => {
	    if (err) throw err;
	    console.log(data); 											//返回二进制的文件内容
	});
	
	fs.readFile(path.join(__dirname, 'src/'),'utf-8', (err, data) => {
	    if (err) throw err;
	    console.log(data); 											//返回utf-8的文件内容
	});

http服务器模块

创建服务器http.createServer(callback)

​ 回调参数:请求request

​ 回调参数:响应response

​ 回调方法:设置请求头response.setHeader('Access-Control-Allow-Origin', '*') 解决跨域

​ 回调方法:设置请求头response.writeHead(statusCode状态码, [reasonPhrase数据类型], [{headers响应头}])

​ 回调方法:响应内容response.write(响应内容)

​ 回调方法:响应内容response.end([响应内容])

​ 链式方法:监听链接listen([port端口号],[host主机],callback)

	http.createServer((request,response)=>{
		response.setHeader('Access-Control-Allow-Origin', '*');
		response.writeHead(200,{'Content-Type': 'text/html;charset=utf-8'});	//设置文档类型和字符编码
		response.write('<h1>hellow world</h1>'); 								//响应的内容
		response.end(); 														//响应结束
	}).listen(port, host,()=>{
		console.log(`The server is running http://${host}:${port}`);			//监听
	});

自定义模块

​ 参考commonjs规范由用户采永js书写的模块。